nodejs将多对象json文件转化为excel文件 您所在的位置:网站首页 json 转 excel nodejs将多对象json文件转化为excel文件

nodejs将多对象json文件转化为excel文件

2023-07-07 19:25| 来源: 网络整理| 查看: 265

业务场景

​ 临时给一个项目做多语言的工作,其实多语言主要是利用不同的语言json文件,代码中放置的是变量。当中文时就去中文语言json包中拿对应的变量。英文则是去英文包读对应变量的值。而我变态的领导让我交付excel文件,wtf,我问能不能交付json包,竟然说不可以。机智的我肯定不会屈服,于是花了一小时写了一个node脚本来实现

我是没有学过node的,因为我还是个练习6个半月的前端练习生,于是我找到了如下资料 廖雪峰,node入门教程 json转excel

开干~

先搭建起环境 目前已知需要利用npm包json2xls,需要node的fs文件读取功能 所以不难知道,我需要使用npm来创建一个可引入依赖的环境,使用node来运行我的js脚本文件

1,创建一个文件夹叫jtoe(json to excel)

2,npm init (生成package.json)

3,npm install json2xls -D

4,新建一个js文件jtoe.js

5,jtoe.js代码如下

const fs = require('fs') const json2xls = require('json2xls'); fs.readFile('zh-CN.json','utf8',(err,zh)=>{ if (err) throw err; fs.readFile('en.json','utf8',(err,en)=>{ if (err) throw err; const jsonz = JSON.parse(zh); const jsone = JSON.parse(en); const jsonArray = []; getAllJson(jsonz,jsone,jsonArray) let xls = json2xls(jsonArray); fs.writeFileSync('name.xlsx', xls, 'binary'); }) }) function getAllJson(jsonz,jsone,jsonArray, name, sign) { if(name == "" || name == undefined) { name = "json" } for(key in jsonz) { var k = name + sign + key; if(!(jsonz[key] instanceof Object)){ jsonArray.push({ zh: jsonz[key], en: jsone[key] }) }else{ getAllJson(jsonz[key],jsone[key],jsonArray, k, sign); } } };

5,运行js脚本: 命令行中运行node jtoe.js 函数getAllJson,使用来递归解析json文件的。因为我定义的语言包是分类了 ,按钮一组,label一组。所以层级不定。需要把所有层级遍历出来。

使用npm包的demo会发现,json转excel的规则。每一行是json数组中的一个元素。json数组中的元素对象里面key值相同在一列。 看图会明白~ json文件内容 && 导出的excel文件

面对疾风吧!see yo~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有